boost (version: 1.72.0) by: boost project https://boostorg.jfrog.io/artifactory/main/release/1.72.0/source/boost_1_72_0.zip https://boostorg.jfrog.io/artifactory/main/release/1.72.0/source/boost_1_72_0.tar.gz -------------------------------------------------------------------------------- SPDX id: BSL-1.0 Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://github.com/boostorg/boost/blob/boost-1.72.0/LICENSE_1_0.txt ================================================================================ cryptopp (version: 5.6.3) by: Wei Dai https://github.com/weidai11/cryptopp/archive/refs/tags/CRYPTOPP_5_6_3.zip -------------------------------------------------------------------------------- SPDX id: BSL-1.0 Compilation Copyright (c) 1995-2013 by Wei Dai. All rights reserved. This copyright applies only to this software distribution package as a compilation, and does not imply a copyright on any particular file in the package. All individual files in this compilation are placed in the public domain by Wei Dai and other contributors. I would like to thank the following authors for placing their works into the public domain: Joan Daemen - 3way.cpp Leonard Janke - cast.cpp, seal.cpp Steve Reid - cast.cpp Phil Karn - des.cpp Andrew M. Kuchling - md2.cpp, md4.cpp Colin Plumb - md5.cpp Seal Woods - rc6.cpp Chris Morgan - rijndael.cpp Paulo Baretto - rijndael.cpp, skipjack.cpp, square.cpp Richard De Moliner - safer.cpp Matthew Skala - twofish.cpp Kevin Springle - camellia.cpp, shacal2.cpp, ttmac.cpp, whrlpool.cpp, ripemd.cpp Ronny Van Keer - sha3.cpp The Crypto++ Library (as a compilation) is currently licensed under the Boost Software License 1.0 (http://www.boost.org/users/license.html). Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://github.com/weidai11/cryptopp/blob/CRYPTOPP_5_6_3/License.txt ================================================================================ Eigen (version: 3.3.7) by: Philip Avery, Abraham Bachrach, Sebastien Barthelemy, Carlos Becker, David Benjamin, Cyrille Berger, Armin Berres, Jose Luis Blanco, Mark Borgerding, Romain Bossart, Kolja Brix, Gauthier Brun, Gabriele Buondonno, Philipp Büttgenbach, Thomas Capricelli, Nicolas Carre, Jean Ceccato, Vladimir Chalupecky, Benjamin Chrétien, Andrew Coles, Jeff complexzeros, Everton Constantino, Marton Danoczy, Jeff Dean, Georg Drenkhahn, Christian Ehrlicher, Martinho Fernandes, Daniel Gomez Ferro, Rohit Garg, Mathieu Gautier, Anton Gladky, Stuart Glaser, Marc Glisse, Frederic Gosselin, Christoph Grüninger, Gaël Guennebaud, Philippe Hamelin, Marcus D. Hanwell, David Harmon, Chen-Pang He, Hauke Heibel, Christoph Hertzberg, Pavel Holoborodko, Tim Holy, Intel, Trevor Irons, Benoît Jacob, Bram de Jong, Kibeom Kim, Moritz Klammler, Claas Köhler, Alexey Korepanov, Igor Krivenko, Marijn Kruisselbrink, Abhijit Kundu, Moritz Lenz, Rasmus Munk Larsen, Bo Li, Sebastian Lipponer, Daniel Lowenberg, David J. Luitz, Naumov Maks, Angelos Mantzaflaris, D J Marcin, Konstantinos A. Margaritis, Roger Martin, Ricard Marxer, Vincenzo Di Massa, Christian Mayer, Frank Meier-Dörnberg, Keir Mierle, Laurent Montel, Eamon Nerbonne, Alexander Neundorf, Jason Newton, Jitse Niesen, Desire Nuentsa, Jan Oberländer, Jos van den Oever, Michael Olbrich, Simon Pilgrim, Bjorn Piltz, Benjamin Piwowarski, Zach Ploskey, Giacomo Po, Sergey Popov, Manoj Rajagopalan, Stjepan Rajko, Jure Repinc, Kenneth Frank Riddile, Richard Roberts, Adolfo Rodriguez, Peter Román, Oliver Ruepp, Radu Bogdan Rusu, C. Antonio Sanchez, Guillaume Saupin, Olivier Saut, Benjamin Schindler, Michael Schmidt, Dennis Schridde, Jakob Schwendner, Christian Seiler, Martin Senst, Sameer Sheorey, Andy Somerville, Alex Stapleton, Benoit Steiner, Sven Strothoff, Leszek Swirski, Adam Szalkowski, Silvio Traversaro, Piotr Trojanek, Anthony Truchet, Adolfo Rodriguez Tsourouksdissian, David Tellenbach, James Richard Tyrer, Rhys Ulerich, Henry de Valence, Ingmar Vanhassel, Michiel Van Dyck, Scott Wheeler, Freddie Witherden, Urs Wolfer, Manuel Yguel, Pierre Zoppitelli, Jonas Adler https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip -------------------------------------------------------------------------------- SPDX id: MPL-2.0 Mozilla Public License Version 2.0 ================================== 1. Definitions -------------- 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution. 1.3. "Contribution" means Covered Software of a particular Contributor. 1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. "Incompatible With Secondary Licenses" means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. "Executable Form" means any form of the work other than Source Code Form. 1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" means this document. 1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. "Modifications" means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. "Source Code Form" means the form of the work preferred for making modifications. 1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants and Conditions -------------------------------- 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: (a) for any code that a Contributor has removed from Covered Software; or (b) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (c) under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities ------------------- 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation --------------------------------------------------- If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination -------------- 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. ************************************************************************ * * * 6. Disclaimer of Warranty * * ------------------------- * * * * Covered Software is provided under this License on an "as is" * * basis, without warranty of any kind, either expressed, implied, or * * statutory, including, without limitation, warranties that the * * Covered Software is free of defects, merchantable, fit for a * * particular purpose or non-infringing. The entire risk as to the * * quality and performance of the Covered Software is with You. * * Should any Covered Software prove defective in any respect, You * * (not any Contributor) assume the cost of any necessary servicing, * * repair, or correction. This disclaimer of warranty constitutes an * * essential part of this License. No use of any Covered Software is * * authorized under this License except under this disclaimer. * * * ************************************************************************ ************************************************************************ * * * 7. Limitation of Liability * * -------------------------- * * * * Under no circumstances and under no legal theory, whether tort * * (including negligence), contract, or otherwise, shall any * * Contributor, or anyone who distributes Covered Software as * * permitted above, be liable to You for any direct, indirect, * * special, incidental, or consequential damages of any character * * including, without limitation, damages for lost profits, loss of * * goodwill, work stoppage, computer failure or malfunction, or any * * and all other commercial damages or losses, even if such party * * shall have been informed of the possibility of such damages. This * * limitation of liability shall not apply to liability for death or * * personal injury resulting from such party's negligence to the * * extent applicable law prohibits such limitation. Some * * jurisdictions do not allow the exclusion or limitation of * * incidental or consequential damages, so this exclusion and * * limitation may not apply to You. * * * ************************************************************************ 8. Litigation ------------- Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous ---------------- This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License --------------------------- 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice ------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - "Incompatible With Secondary Licenses" Notice --------------------------------------------------------- This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. https://gitlab.com/libeigen/eigen/-/blob/3.3.7/COPYING.MPL2?ref_type=tags ================================================================================ Expat (version: 2.5.0) by: James Clark https://github.com/libexpat/libexpat/archive/refs/tags/R_2_5_0.zip -------------------------------------------------------------------------------- SPDX id: MIT Copyright (c) 1998-2000 Thai Open Source Software Center Ltd and Clark Cooper Copyright (c) 2001-2022 Expat maintainers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://github.com/libexpat/libexpat/blob/master/expat/COPYING ================================================================================ FirmwareUpdate (version: 3.4.2) by: Andreas Gau -------------------------------------------------------------------------------- GenApi GENICAM: Generic Interface for Cameras ====================================== License and Rules ================= Table of Contents 1 OVERVIEW 2 SUBJECT OF THE GENICAM LICENSE 3 RULES FOR STANDARD COMPLIANCY 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC 7 GENICAM COLLABORATION RULES 1 OVERVIEW ========== This document describes the GenICam license and the collaboration rules within the GenICam standard group. Furthermore, the official membership application form is also part of this document. 2 SUBJECT OF THE GENICAM LICENSE ================================ The goal of GenICam is to provide a generic programming interface for cameras which is independent of the camera’s interface technology like GigE Vision, USB3 Vision, CoaXPress, Camera Link, 1394 DCAM, or else. GenICam requires that cameras have a low level, register based programming interface, and that interface standards define a protocol for accessing these registers. All modern interface standards follow this scheme.The GenICam standard consists of several modules according to the main tasks to be solved: - GenApi: standardizes the format of a XML based device description file which describes how to map high level feature access (e.g. Camera.Gain = 42) by the user to low level register accesses (e.g. Camera.WriteReg( 0xff1234, 0x2A, 2)). - SFNC (Standard Features Naming Convention): standardizes names, types, and behavior for the most common device features resulting in a plug&play-like interoperability between products from different vendors. Part of the SFNC is also the PFNC (Pixel Format Naming Convention) which standardizes the memory layout of video data. - CLProtocol: standardizes the interface of an adapter DLL to permit interfacing Camera Link cameras with GenICam. - FWUpdate: standardizes the firmware update process for devices using GenApi. - GenTL: standardizes a generic programming interface for transport layers, which defines the enumeration, control and data acquisition of cameras. This interface allows combining drivers and image processing libraries from different vendors. - GenTL SFNC: standardizes names, types, and behavior for common features of the transport layer interface. - GenCP (generic control protocol): standardizes a generic packet based protocol for controlling cameras. It is used to simplify the definition and implementation of new transport layer standards. The GenICam standard group also provides a reference implementation for the GenApi module. The reference implementation is a collection of software modules which can be distributed in two ways: as runtime version or as development version, see Chapters 4 and 5 for more details about using and redistributing the reference implementation. The runtime as well as the development version may contain 3rd party modules which come with their own license. These licenses override the GenICam license. Note that GenICam is an industry standard which is mostly used by vendors "under the hood" to provide interoperability between their products. As a consequence of this, the reference implementation does not contain any driver and thus cannot be used stand-alone to control a camera. 3 RULES FOR STANDARD COMPLIANCY =============================== The standard documents are available for free to anybody. Users may download the latest version of the standard documents from the GenICam website at www.genicam.org. Regarding compliancy, the GenICam standard has been divided into three parts: - GenICam (mainly the modules GenApi and SFNC) - GenICam TL (mainly the modules GenTL and GenTL SFNC) - GenICam CP (mainly the module GenCP) While the compliancy rules for GenICam (i.e, the modules GenApi and SFNC) are always valid, the compliancy rules for GenICam TL and GenICam CP are only valid if applicable. The term GenICam compliant is true for: - Cameras (or other devices) providing a GenICam compliant XML based device description file and obeying the standard’s additional rules. In particular, it must follow the GenICam Standard Features Naming Convention (SFNC), whenever applicable or possible. - Software libraries being able to access GenICam compliant devices. The term GenICam TL compliant is true for: - Products that provide a transport layer interface compatible with the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Producers"). - Products that can access devices via a GenICam GenTL Producer based on the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Consumers"). The term GenICam CP compliant is true for: - Cameras (or other devices) that support the generic packet-based protocol and provide the bootstrap register map as defined in the GenICam GenCP standard. - Products that can access devices via the generic packet-based protocol and bootstrap register map as defined in the GenICam GenCP standard. In general, the GenICam compliancy is declared by self-certification. The GenICam standard group can provide additional checklists that have to be used during the self-certification procedure. Vendors may use the GenICam logo(s) and use the name GenICamTM for advertising GenICam compliant products. In future, additional compliancy procedures may become mandatory for new devices such as validation test suites and/or obligations to participate at plug-fests. 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION ===================================================================== The runtime version of the reference implementation is available for free to anybody. Everyone may download the latest version from the GenICam website anonymously. The runtime version is distributed under a modified BSD license: Copyright (c) 2005-, All rights reserved. Redistribution and use in source and binary forms, without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the GenICam standard group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. In contrast to the BSD license the user must not modify the software except the installation procedure, see Chapter 5 for more details. This is to make sure only properly tested and released GenICam versions are used in the machine vision community and the support effort is restricted. The original BSD license reads here "with or without modification". 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION ========================================================================= In order to get access to the development version of the GenICam reference implementation a company must become associated member of the GenICam standard group. It can do so at no cost by registering at the EMVA by using the membership application form in the Appendix section. By registering, the designated representative contact can name a reasonable number of company individuals which get the following benefits: - Access to code repository, in particular to download the GenICam source code and use it for debugging. - Access to the GenICam mailing list. - Technical support from the GenICam community through the GenICam mailing list. - The company name is listed on the GenICam website as an associated member. By registering the company accepts the following obligations: - It must not give the source code to any 3rd party. - All bug fixes and all changes regarding unsupported platforms and compilers (for which no official binaries exist yet) shall be submitted to the respective GenICam module maintainers for reviewing and testing. Once the code change is in the code repository, private builds can be made using the repository code, provided that the official way to create a private namespace and private binary names is used. Additionally, the self-generated release must clearly indicate the snapshot version used and state that it is not an official release. - Custom builds of the unmodified source of the GenICam reference implementation may be re-distributed by companies, provided that they follow the official mechanism for utilizing private binary names, namespaces, and indicate the repository snapshot version of the source code. - It must submit improvements to the GenICam standard group which will validate them and add them to the next GenICam release in reasonable time. - The company must declare any intellectual property owned by it that may conflict with GenICam specifications. This is part of the application form. 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC ============================================= Redistributing (parts of) SFNC or GenTL SFNC without modification, addition or interpretation, is allowed as long as it is clearly stated that this is a copy of the GenICam (GenTL) SFNC standard document version that can be found at www.genicam.org. 7 GENICAM COLLABORATION RULES ============================= The GenICam standard and its reference implementation are maintained and extended by the contributing members of the GenICam standard group. The development runs along the following workflow: - There are regular meetings. Typically, these meetings take place twice a year. Between meetings work packages are given to all companies who want to stay or become contributing members. A typical work package would be extending the reference implementation, writing a part of the standard specification, developing tests for the validation framework, preparing SFNC proposals, and marketing/administrative issues. - Each meeting starts by reviewing the work packages given from the last meeting. The contributing members accept the work package of each company by vote (simple majority). Those members having their work package accepted become contributing members as soon as the work package review is finished. - If during the meeting, decisions are made, the contributing members vote according to the following rules: - Voting is always performed during meetings or per email if approved modifications need to be incorporated. - Only contributing members can vote. - There is one vote per independent member company. - A simple majority is required for normal technical decisions. - A 2/3 majority is required for releases of the standard and/or the reference implementation. - A 2/3 majority is required for changing the teamwork rules. Any changes in the teamwork rules should, however, be communicated to and discussed with the EMVA Board of Directors. At the end of each meeting the contributing members define work packages available for all companies who want to contribute for the next meeting. These work packages are designed to distribute the current standard work on each working company and take into account the various interests and skills of each company. Any associated member can take a work package and thus become contributing member at the next meeting provided the work package is approved. Spare work packages may be defined so that companies wanting to join between meetings can pick it up and become contributing member immediately on the next meeting. The GenICam standard group is led by one chair and several sub-chairs. Typically, the (sub-)chairs are also the responsible persons for the maintenance of specific GenICam modules. The GenICam chairs are elected for a period of three years. The voting takes place during the regular meetings and requires a 2/3 majority. https://www.emva.org/wp-content/uploads/GenICam_License_20180629.pdf ================================================================================ FLANN (version: 1.8.4) by: Marius Muja, David G. Lowe https://github.com/flann-lib/flann/archive/refs/tags/1.8.4.zip -------------------------------------------------------------------------------- SPDX id: BSD-3-Clause The BSD License Copyright (c) 2008-2011 Marius Muja (mariusm@cs.ubc.ca). All rights reserved. Copyright (c) 2008-2011 David G. Lowe (lowe@cs.ubc.ca). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the "University of British Columbia" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. https://github.com/flann-lib/flann/blob/1.8.4/COPYING ================================================================================ GCBase (version: 3.4.2) by: -------------------------------------------------------------------------------- GenApi GENICAM: Generic Interface for Cameras ====================================== License and Rules ================= Table of Contents 1 OVERVIEW 2 SUBJECT OF THE GENICAM LICENSE 3 RULES FOR STANDARD COMPLIANCY 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC 7 GENICAM COLLABORATION RULES 1 OVERVIEW ========== This document describes the GenICam license and the collaboration rules within the GenICam standard group. Furthermore, the official membership application form is also part of this document. 2 SUBJECT OF THE GENICAM LICENSE ================================ The goal of GenICam is to provide a generic programming interface for cameras which is independent of the camera’s interface technology like GigE Vision, USB3 Vision, CoaXPress, Camera Link, 1394 DCAM, or else. GenICam requires that cameras have a low level, register based programming interface, and that interface standards define a protocol for accessing these registers. All modern interface standards follow this scheme.The GenICam standard consists of several modules according to the main tasks to be solved: - GenApi: standardizes the format of a XML based device description file which describes how to map high level feature access (e.g. Camera.Gain = 42) by the user to low level register accesses (e.g. Camera.WriteReg( 0xff1234, 0x2A, 2)). - SFNC (Standard Features Naming Convention): standardizes names, types, and behavior for the most common device features resulting in a plug&play-like interoperability between products from different vendors. Part of the SFNC is also the PFNC (Pixel Format Naming Convention) which standardizes the memory layout of video data. - CLProtocol: standardizes the interface of an adapter DLL to permit interfacing Camera Link cameras with GenICam. - FWUpdate: standardizes the firmware update process for devices using GenApi. - GenTL: standardizes a generic programming interface for transport layers, which defines the enumeration, control and data acquisition of cameras. This interface allows combining drivers and image processing libraries from different vendors. - GenTL SFNC: standardizes names, types, and behavior for common features of the transport layer interface. - GenCP (generic control protocol): standardizes a generic packet based protocol for controlling cameras. It is used to simplify the definition and implementation of new transport layer standards. The GenICam standard group also provides a reference implementation for the GenApi module. The reference implementation is a collection of software modules which can be distributed in two ways: as runtime version or as development version, see Chapters 4 and 5 for more details about using and redistributing the reference implementation. The runtime as well as the development version may contain 3rd party modules which come with their own license. These licenses override the GenICam license. Note that GenICam is an industry standard which is mostly used by vendors "under the hood" to provide interoperability between their products. As a consequence of this, the reference implementation does not contain any driver and thus cannot be used stand-alone to control a camera. 3 RULES FOR STANDARD COMPLIANCY =============================== The standard documents are available for free to anybody. Users may download the latest version of the standard documents from the GenICam website at www.genicam.org. Regarding compliancy, the GenICam standard has been divided into three parts: - GenICam (mainly the modules GenApi and SFNC) - GenICam TL (mainly the modules GenTL and GenTL SFNC) - GenICam CP (mainly the module GenCP) While the compliancy rules for GenICam (i.e, the modules GenApi and SFNC) are always valid, the compliancy rules for GenICam TL and GenICam CP are only valid if applicable. The term GenICam compliant is true for: - Cameras (or other devices) providing a GenICam compliant XML based device description file and obeying the standard’s additional rules. In particular, it must follow the GenICam Standard Features Naming Convention (SFNC), whenever applicable or possible. - Software libraries being able to access GenICam compliant devices. The term GenICam TL compliant is true for: - Products that provide a transport layer interface compatible with the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Producers"). - Products that can access devices via a GenICam GenTL Producer based on the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Consumers"). The term GenICam CP compliant is true for: - Cameras (or other devices) that support the generic packet-based protocol and provide the bootstrap register map as defined in the GenICam GenCP standard. - Products that can access devices via the generic packet-based protocol and bootstrap register map as defined in the GenICam GenCP standard. In general, the GenICam compliancy is declared by self-certification. The GenICam standard group can provide additional checklists that have to be used during the self-certification procedure. Vendors may use the GenICam logo(s) and use the name GenICamTM for advertising GenICam compliant products. In future, additional compliancy procedures may become mandatory for new devices such as validation test suites and/or obligations to participate at plug-fests. 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION ===================================================================== The runtime version of the reference implementation is available for free to anybody. Everyone may download the latest version from the GenICam website anonymously. The runtime version is distributed under a modified BSD license: Copyright (c) 2005-, All rights reserved. Redistribution and use in source and binary forms, without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the GenICam standard group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. In contrast to the BSD license the user must not modify the software except the installation procedure, see Chapter 5 for more details. This is to make sure only properly tested and released GenICam versions are used in the machine vision community and the support effort is restricted. The original BSD license reads here "with or without modification". 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION ========================================================================= In order to get access to the development version of the GenICam reference implementation a company must become associated member of the GenICam standard group. It can do so at no cost by registering at the EMVA by using the membership application form in the Appendix section. By registering, the designated representative contact can name a reasonable number of company individuals which get the following benefits: - Access to code repository, in particular to download the GenICam source code and use it for debugging. - Access to the GenICam mailing list. - Technical support from the GenICam community through the GenICam mailing list. - The company name is listed on the GenICam website as an associated member. By registering the company accepts the following obligations: - It must not give the source code to any 3rd party. - All bug fixes and all changes regarding unsupported platforms and compilers (for which no official binaries exist yet) shall be submitted to the respective GenICam module maintainers for reviewing and testing. Once the code change is in the code repository, private builds can be made using the repository code, provided that the official way to create a private namespace and private binary names is used. Additionally, the self-generated release must clearly indicate the snapshot version used and state that it is not an official release. - Custom builds of the unmodified source of the GenICam reference implementation may be re-distributed by companies, provided that they follow the official mechanism for utilizing private binary names, namespaces, and indicate the repository snapshot version of the source code. - It must submit improvements to the GenICam standard group which will validate them and add them to the next GenICam release in reasonable time. - The company must declare any intellectual property owned by it that may conflict with GenICam specifications. This is part of the application form. 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC ============================================= Redistributing (parts of) SFNC or GenTL SFNC without modification, addition or interpretation, is allowed as long as it is clearly stated that this is a copy of the GenICam (GenTL) SFNC standard document version that can be found at www.genicam.org. 7 GENICAM COLLABORATION RULES ============================= The GenICam standard and its reference implementation are maintained and extended by the contributing members of the GenICam standard group. The development runs along the following workflow: - There are regular meetings. Typically, these meetings take place twice a year. Between meetings work packages are given to all companies who want to stay or become contributing members. A typical work package would be extending the reference implementation, writing a part of the standard specification, developing tests for the validation framework, preparing SFNC proposals, and marketing/administrative issues. - Each meeting starts by reviewing the work packages given from the last meeting. The contributing members accept the work package of each company by vote (simple majority). Those members having their work package accepted become contributing members as soon as the work package review is finished. - If during the meeting, decisions are made, the contributing members vote according to the following rules: - Voting is always performed during meetings or per email if approved modifications need to be incorporated. - Only contributing members can vote. - There is one vote per independent member company. - A simple majority is required for normal technical decisions. - A 2/3 majority is required for releases of the standard and/or the reference implementation. - A 2/3 majority is required for changing the teamwork rules. Any changes in the teamwork rules should, however, be communicated to and discussed with the EMVA Board of Directors. At the end of each meeting the contributing members define work packages available for all companies who want to contribute for the next meeting. These work packages are designed to distribute the current standard work on each working company and take into account the various interests and skills of each company. Any associated member can take a work package and thus become contributing member at the next meeting provided the work package is approved. Spare work packages may be defined so that companies wanting to join between meetings can pick it up and become contributing member immediately on the next meeting. The GenICam standard group is led by one chair and several sub-chairs. Typically, the (sub-)chairs are also the responsible persons for the maintenance of specific GenICam modules. The GenICam chairs are elected for a period of three years. The voting takes place during the regular meetings and requires a 2/3 majority. https://www.emva.org/wp-content/uploads/GenICam_License_20180629.pdf ================================================================================ GenApi (version: 3.4.2) by: Fritz Dierks, Hartmut Nebelung -------------------------------------------------------------------------------- GenApi GENICAM: Generic Interface for Cameras ====================================== License and Rules ================= Table of Contents 1 OVERVIEW 2 SUBJECT OF THE GENICAM LICENSE 3 RULES FOR STANDARD COMPLIANCY 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC 7 GENICAM COLLABORATION RULES 1 OVERVIEW ========== This document describes the GenICam license and the collaboration rules within the GenICam standard group. Furthermore, the official membership application form is also part of this document. 2 SUBJECT OF THE GENICAM LICENSE ================================ The goal of GenICam is to provide a generic programming interface for cameras which is independent of the camera’s interface technology like GigE Vision, USB3 Vision, CoaXPress, Camera Link, 1394 DCAM, or else. GenICam requires that cameras have a low level, register based programming interface, and that interface standards define a protocol for accessing these registers. All modern interface standards follow this scheme.The GenICam standard consists of several modules according to the main tasks to be solved: - GenApi: standardizes the format of a XML based device description file which describes how to map high level feature access (e.g. Camera.Gain = 42) by the user to low level register accesses (e.g. Camera.WriteReg( 0xff1234, 0x2A, 2)). - SFNC (Standard Features Naming Convention): standardizes names, types, and behavior for the most common device features resulting in a plug&play-like interoperability between products from different vendors. Part of the SFNC is also the PFNC (Pixel Format Naming Convention) which standardizes the memory layout of video data. - CLProtocol: standardizes the interface of an adapter DLL to permit interfacing Camera Link cameras with GenICam. - FWUpdate: standardizes the firmware update process for devices using GenApi. - GenTL: standardizes a generic programming interface for transport layers, which defines the enumeration, control and data acquisition of cameras. This interface allows combining drivers and image processing libraries from different vendors. - GenTL SFNC: standardizes names, types, and behavior for common features of the transport layer interface. - GenCP (generic control protocol): standardizes a generic packet based protocol for controlling cameras. It is used to simplify the definition and implementation of new transport layer standards. The GenICam standard group also provides a reference implementation for the GenApi module. The reference implementation is a collection of software modules which can be distributed in two ways: as runtime version or as development version, see Chapters 4 and 5 for more details about using and redistributing the reference implementation. The runtime as well as the development version may contain 3rd party modules which come with their own license. These licenses override the GenICam license. Note that GenICam is an industry standard which is mostly used by vendors "under the hood" to provide interoperability between their products. As a consequence of this, the reference implementation does not contain any driver and thus cannot be used stand-alone to control a camera. 3 RULES FOR STANDARD COMPLIANCY =============================== The standard documents are available for free to anybody. Users may download the latest version of the standard documents from the GenICam website at www.genicam.org. Regarding compliancy, the GenICam standard has been divided into three parts: - GenICam (mainly the modules GenApi and SFNC) - GenICam TL (mainly the modules GenTL and GenTL SFNC) - GenICam CP (mainly the module GenCP) While the compliancy rules for GenICam (i.e, the modules GenApi and SFNC) are always valid, the compliancy rules for GenICam TL and GenICam CP are only valid if applicable. The term GenICam compliant is true for: - Cameras (or other devices) providing a GenICam compliant XML based device description file and obeying the standard’s additional rules. In particular, it must follow the GenICam Standard Features Naming Convention (SFNC), whenever applicable or possible. - Software libraries being able to access GenICam compliant devices. The term GenICam TL compliant is true for: - Products that provide a transport layer interface compatible with the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Producers"). - Products that can access devices via a GenICam GenTL Producer based on the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Consumers"). The term GenICam CP compliant is true for: - Cameras (or other devices) that support the generic packet-based protocol and provide the bootstrap register map as defined in the GenICam GenCP standard. - Products that can access devices via the generic packet-based protocol and bootstrap register map as defined in the GenICam GenCP standard. In general, the GenICam compliancy is declared by self-certification. The GenICam standard group can provide additional checklists that have to be used during the self-certification procedure. Vendors may use the GenICam logo(s) and use the name GenICamTM for advertising GenICam compliant products. In future, additional compliancy procedures may become mandatory for new devices such as validation test suites and/or obligations to participate at plug-fests. 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION ===================================================================== The runtime version of the reference implementation is available for free to anybody. Everyone may download the latest version from the GenICam website anonymously. The runtime version is distributed under a modified BSD license: Copyright (c) 2005-, All rights reserved. Redistribution and use in source and binary forms, without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the GenICam standard group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. In contrast to the BSD license the user must not modify the software except the installation procedure, see Chapter 5 for more details. This is to make sure only properly tested and released GenICam versions are used in the machine vision community and the support effort is restricted. The original BSD license reads here "with or without modification". 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION ========================================================================= In order to get access to the development version of the GenICam reference implementation a company must become associated member of the GenICam standard group. It can do so at no cost by registering at the EMVA by using the membership application form in the Appendix section. By registering, the designated representative contact can name a reasonable number of company individuals which get the following benefits: - Access to code repository, in particular to download the GenICam source code and use it for debugging. - Access to the GenICam mailing list. - Technical support from the GenICam community through the GenICam mailing list. - The company name is listed on the GenICam website as an associated member. By registering the company accepts the following obligations: - It must not give the source code to any 3rd party. - All bug fixes and all changes regarding unsupported platforms and compilers (for which no official binaries exist yet) shall be submitted to the respective GenICam module maintainers for reviewing and testing. Once the code change is in the code repository, private builds can be made using the repository code, provided that the official way to create a private namespace and private binary names is used. Additionally, the self-generated release must clearly indicate the snapshot version used and state that it is not an official release. - Custom builds of the unmodified source of the GenICam reference implementation may be re-distributed by companies, provided that they follow the official mechanism for utilizing private binary names, namespaces, and indicate the repository snapshot version of the source code. - It must submit improvements to the GenICam standard group which will validate them and add them to the next GenICam release in reasonable time. - The company must declare any intellectual property owned by it that may conflict with GenICam specifications. This is part of the application form. 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC ============================================= Redistributing (parts of) SFNC or GenTL SFNC without modification, addition or interpretation, is allowed as long as it is clearly stated that this is a copy of the GenICam (GenTL) SFNC standard document version that can be found at www.genicam.org. 7 GENICAM COLLABORATION RULES ============================= The GenICam standard and its reference implementation are maintained and extended by the contributing members of the GenICam standard group. The development runs along the following workflow: - There are regular meetings. Typically, these meetings take place twice a year. Between meetings work packages are given to all companies who want to stay or become contributing members. A typical work package would be extending the reference implementation, writing a part of the standard specification, developing tests for the validation framework, preparing SFNC proposals, and marketing/administrative issues. - Each meeting starts by reviewing the work packages given from the last meeting. The contributing members accept the work package of each company by vote (simple majority). Those members having their work package accepted become contributing members as soon as the work package review is finished. - If during the meeting, decisions are made, the contributing members vote according to the following rules: - Voting is always performed during meetings or per email if approved modifications need to be incorporated. - Only contributing members can vote. - There is one vote per independent member company. - A simple majority is required for normal technical decisions. - A 2/3 majority is required for releases of the standard and/or the reference implementation. - A 2/3 majority is required for changing the teamwork rules. Any changes in the teamwork rules should, however, be communicated to and discussed with the EMVA Board of Directors. At the end of each meeting the contributing members define work packages available for all companies who want to contribute for the next meeting. These work packages are designed to distribute the current standard work on each working company and take into account the various interests and skills of each company. Any associated member can take a work package and thus become contributing member at the next meeting provided the work package is approved. Spare work packages may be defined so that companies wanting to join between meetings can pick it up and become contributing member immediately on the next meeting. The GenICam standard group is led by one chair and several sub-chairs. Typically, the (sub-)chairs are also the responsible persons for the maintenance of specific GenICam modules. The GenICam chairs are elected for a period of three years. The voting takes place during the regular meetings and requires a 2/3 majority. https://www.emva.org/wp-content/uploads/GenICam_License_20180629.pdf ================================================================================ GenX (version: beta5) by: Tim Bray http://www.tbray.org/ongoing/genx/ -------------------------------------------------------------------------------- SPDX id: MIT Copyright (c) Tim Bray and Sun Microsystems, 2004. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. http://www.tbray.org/ongoing/genx/COPYING ================================================================================ jasper (version: 1.900.1) by: Michael David Adams https://github.com/jasper-software/jasper/tree/version-1.900.1 -------------------------------------------------------------------------------- SPDX id: JasPer-2.0 JasPer License Version 2.0 Copyright (c) 2001-2006 Michael David Adams Copyright (c) 1999-2000 Image Power, Inc. Copyright (c) 1999-2000 The University of British Columbia All rights reserved. Permission is hereby granted, free of charge, to any person (the "User") obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 1. The above copyright notices and this permission notice (which includes the disclaimer below) shall be included in all copies or substantial portions of the Software. 2. The name of a copyright holder shall not be used to endorse or promote products derived from the Software without specific prior written permission. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY. EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES. https://github.com/jasper-software/jasper/blob/version-1.900.1/LICENSE ================================================================================ jsonformoderncpp (version: 3.6.1) by: Niels Lohmann https://github.com/nlohmann/json/archive/refs/tags/v3.6.1.zip -------------------------------------------------------------------------------- SPDX id: MIT MIT License Copyright (c) 2013-2022 Niels Lohmann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://github.com/nlohmann/json/blob/v3.6.1/LICENSE.MIT ================================================================================ libpng (version: 1.6.35) by: Cosmin Truta, Glenn Randers-Pehrson, Andreas Dilger, Guy Eric Schalnat https://sourceforge.net/projects/libpng/files/libpng16/1.6.35/libpng-1.6.35.tar.gz/download -------------------------------------------------------------------------------- SPDX id: Libpng This copy of the libpng notices is provided for your convenience. In case of any discrepancy between this copy and the notices in the file png.h that is included in the libpng distribution, the latter shall prevail. COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. This code is released under the libpng license. libpng versions 1.0.7, July 1, 2000 through 1.6.35, July 15, 2018 are Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals added to the list of Contributing Authors: Simon-Pierre Cadieux Eric S. Raymond Mans Rullgard Cosmin Truta Gilles Vollant James Yu Mandar Sahastrabuddhe Google Inc. Vadim Barkov and with the following additions to the disclaimer: There is no warranty against interference with your enjoyment of the library or against infringement. There is no warranty that our efforts or the library will fulfill any of your particular purposes or needs. This library is provided with all faults, and the entire risk of satisfactory quality, performance, accuracy, and effort is with the user. Some files in the "contrib" directory and some configure-generated files that are distributed with libpng have other copyright owners and are released under other open source licenses. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from libpng-0.96, and are distributed according to the same disclaimer and license as libpng-0.96, with the following individuals added to the list of Contributing Authors: Tom Lane Glenn Randers-Pehrson Willem van Schaik libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, and are distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: John Bowler Kevin Bracey Sam Bushell Magnus Holmgren Greg Roelofs Tom Tanner Some files in the "scripts" directory have other copyright owners but are released under this license. libpng versions 0.5, May 1995, through 0.88, January 1996, are Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of individuals: Andreas Dilger Dave Martindale Guy Eric Schalnat Paul Schmidt Tim Wegner The PNG Reference Library is supplied "AS IS". The Contributing Authors and Group 42, Inc. disclaim all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The Contributing Authors and Group 42, Inc. assume no liability for direct, indirect, incidental, special, exemplary, or consequential damages, which may result from the use of the PNG Reference Library, even if advised of the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for any purpose, without fee, subject to the following restrictions: 1. The origin of this source code must not be misrepresented. 2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. 3. This Copyright notice may not be removed or altered from any source or altered source distribution. The Contributing Authors and Group 42, Inc. specifically permit, without fee, and encourage the use of this source code as a component to supporting the PNG file format in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE. TRADEMARK: The name "libpng" has not been registered by the Copyright owner as a trademark in any jurisdiction. However, because libpng has been distributed and maintained world-wide, continually since 1995, the Copyright owner claims "common-law trademark protection" in any jurisdiction where common-law trademark is recognized. OSI CERTIFICATION: Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a certification mark of the Open Source Initiative. OSI has not addressed the additional disclaimers inserted at version 1.0.7. EXPORT CONTROL: The Copyright owner believes that the Export Control Classification Number (ECCN) for libpng is EAR99, which means not subject to export controls or International Traffic in Arms Regulations (ITAR) because it is open source, publicly available software, that does not contain any encryption software. See the EAR, paragraphs 734.3(b)(3) and 734.7(b). Glenn Randers-Pehrson glennrp at users.sourceforge.net July 15, 2018 https://sourceforge.net/projects/libpng/files/libpng16/1.6.35/libpng-1.6.35-LICENSE.txt ================================================================================ libtiff (version: 4.0.9) by: Sam Leffler https://gitlab.com/libtiff/libtiff/-/tree/v4.0.9?ref_type=tags -------------------------------------------------------------------------------- SPDX id: libtiff Copyright (c) 1988-1997 Sam Leffler Copyright (c) 1991-1997 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. https://gitlab.com/libtiff/libtiff/-/blob/v4.0.9/COPYRIGHT?ref_type=tags ================================================================================ Log (version: 3.4.2) by: Fritz Dierks -------------------------------------------------------------------------------- GenApi GENICAM: Generic Interface for Cameras ====================================== License and Rules ================= Table of Contents 1 OVERVIEW 2 SUBJECT OF THE GENICAM LICENSE 3 RULES FOR STANDARD COMPLIANCY 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC 7 GENICAM COLLABORATION RULES 1 OVERVIEW ========== This document describes the GenICam license and the collaboration rules within the GenICam standard group. Furthermore, the official membership application form is also part of this document. 2 SUBJECT OF THE GENICAM LICENSE ================================ The goal of GenICam is to provide a generic programming interface for cameras which is independent of the camera’s interface technology like GigE Vision, USB3 Vision, CoaXPress, Camera Link, 1394 DCAM, or else. GenICam requires that cameras have a low level, register based programming interface, and that interface standards define a protocol for accessing these registers. All modern interface standards follow this scheme.The GenICam standard consists of several modules according to the main tasks to be solved: - GenApi: standardizes the format of a XML based device description file which describes how to map high level feature access (e.g. Camera.Gain = 42) by the user to low level register accesses (e.g. Camera.WriteReg( 0xff1234, 0x2A, 2)). - SFNC (Standard Features Naming Convention): standardizes names, types, and behavior for the most common device features resulting in a plug&play-like interoperability between products from different vendors. Part of the SFNC is also the PFNC (Pixel Format Naming Convention) which standardizes the memory layout of video data. - CLProtocol: standardizes the interface of an adapter DLL to permit interfacing Camera Link cameras with GenICam. - FWUpdate: standardizes the firmware update process for devices using GenApi. - GenTL: standardizes a generic programming interface for transport layers, which defines the enumeration, control and data acquisition of cameras. This interface allows combining drivers and image processing libraries from different vendors. - GenTL SFNC: standardizes names, types, and behavior for common features of the transport layer interface. - GenCP (generic control protocol): standardizes a generic packet based protocol for controlling cameras. It is used to simplify the definition and implementation of new transport layer standards. The GenICam standard group also provides a reference implementation for the GenApi module. The reference implementation is a collection of software modules which can be distributed in two ways: as runtime version or as development version, see Chapters 4 and 5 for more details about using and redistributing the reference implementation. The runtime as well as the development version may contain 3rd party modules which come with their own license. These licenses override the GenICam license. Note that GenICam is an industry standard which is mostly used by vendors "under the hood" to provide interoperability between their products. As a consequence of this, the reference implementation does not contain any driver and thus cannot be used stand-alone to control a camera. 3 RULES FOR STANDARD COMPLIANCY =============================== The standard documents are available for free to anybody. Users may download the latest version of the standard documents from the GenICam website at www.genicam.org. Regarding compliancy, the GenICam standard has been divided into three parts: - GenICam (mainly the modules GenApi and SFNC) - GenICam TL (mainly the modules GenTL and GenTL SFNC) - GenICam CP (mainly the module GenCP) While the compliancy rules for GenICam (i.e, the modules GenApi and SFNC) are always valid, the compliancy rules for GenICam TL and GenICam CP are only valid if applicable. The term GenICam compliant is true for: - Cameras (or other devices) providing a GenICam compliant XML based device description file and obeying the standard’s additional rules. In particular, it must follow the GenICam Standard Features Naming Convention (SFNC), whenever applicable or possible. - Software libraries being able to access GenICam compliant devices. The term GenICam TL compliant is true for: - Products that provide a transport layer interface compatible with the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Producers"). - Products that can access devices via a GenICam GenTL Producer based on the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Consumers"). The term GenICam CP compliant is true for: - Cameras (or other devices) that support the generic packet-based protocol and provide the bootstrap register map as defined in the GenICam GenCP standard. - Products that can access devices via the generic packet-based protocol and bootstrap register map as defined in the GenICam GenCP standard. In general, the GenICam compliancy is declared by self-certification. The GenICam standard group can provide additional checklists that have to be used during the self-certification procedure. Vendors may use the GenICam logo(s) and use the name GenICamTM for advertising GenICam compliant products. In future, additional compliancy procedures may become mandatory for new devices such as validation test suites and/or obligations to participate at plug-fests. 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION ===================================================================== The runtime version of the reference implementation is available for free to anybody. Everyone may download the latest version from the GenICam website anonymously. The runtime version is distributed under a modified BSD license: Copyright (c) 2005-, All rights reserved. Redistribution and use in source and binary forms, without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the GenICam standard group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. In contrast to the BSD license the user must not modify the software except the installation procedure, see Chapter 5 for more details. This is to make sure only properly tested and released GenICam versions are used in the machine vision community and the support effort is restricted. The original BSD license reads here "with or without modification". 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION ========================================================================= In order to get access to the development version of the GenICam reference implementation a company must become associated member of the GenICam standard group. It can do so at no cost by registering at the EMVA by using the membership application form in the Appendix section. By registering, the designated representative contact can name a reasonable number of company individuals which get the following benefits: - Access to code repository, in particular to download the GenICam source code and use it for debugging. - Access to the GenICam mailing list. - Technical support from the GenICam community through the GenICam mailing list. - The company name is listed on the GenICam website as an associated member. By registering the company accepts the following obligations: - It must not give the source code to any 3rd party. - All bug fixes and all changes regarding unsupported platforms and compilers (for which no official binaries exist yet) shall be submitted to the respective GenICam module maintainers for reviewing and testing. Once the code change is in the code repository, private builds can be made using the repository code, provided that the official way to create a private namespace and private binary names is used. Additionally, the self-generated release must clearly indicate the snapshot version used and state that it is not an official release. - Custom builds of the unmodified source of the GenICam reference implementation may be re-distributed by companies, provided that they follow the official mechanism for utilizing private binary names, namespaces, and indicate the repository snapshot version of the source code. - It must submit improvements to the GenICam standard group which will validate them and add them to the next GenICam release in reasonable time. - The company must declare any intellectual property owned by it that may conflict with GenICam specifications. This is part of the application form. 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC ============================================= Redistributing (parts of) SFNC or GenTL SFNC without modification, addition or interpretation, is allowed as long as it is clearly stated that this is a copy of the GenICam (GenTL) SFNC standard document version that can be found at www.genicam.org. 7 GENICAM COLLABORATION RULES ============================= The GenICam standard and its reference implementation are maintained and extended by the contributing members of the GenICam standard group. The development runs along the following workflow: - There are regular meetings. Typically, these meetings take place twice a year. Between meetings work packages are given to all companies who want to stay or become contributing members. A typical work package would be extending the reference implementation, writing a part of the standard specification, developing tests for the validation framework, preparing SFNC proposals, and marketing/administrative issues. - Each meeting starts by reviewing the work packages given from the last meeting. The contributing members accept the work package of each company by vote (simple majority). Those members having their work package accepted become contributing members as soon as the work package review is finished. - If during the meeting, decisions are made, the contributing members vote according to the following rules: - Voting is always performed during meetings or per email if approved modifications need to be incorporated. - Only contributing members can vote. - There is one vote per independent member company. - A simple majority is required for normal technical decisions. - A 2/3 majority is required for releases of the standard and/or the reference implementation. - A 2/3 majority is required for changing the teamwork rules. Any changes in the teamwork rules should, however, be communicated to and discussed with the EMVA Board of Directors. At the end of each meeting the contributing members define work packages available for all companies who want to contribute for the next meeting. These work packages are designed to distribute the current standard work on each working company and take into account the various interests and skills of each company. Any associated member can take a work package and thus become contributing member at the next meeting provided the work package is approved. Spare work packages may be defined so that companies wanting to join between meetings can pick it up and become contributing member immediately on the next meeting. The GenICam standard group is led by one chair and several sub-chairs. Typically, the (sub-)chairs are also the responsible persons for the maintenance of specific GenICam modules. The GenICam chairs are elected for a period of three years. The voting takes place during the regular meetings and requires a 2/3 majority. https://www.emva.org/wp-content/uploads/GenICam_License_20180629.pdf ================================================================================ log4cpp (version: 1.0.0) by: Bastiaan Bakker https://sourceforge.net/projects/log4cpp/files/log4cpp-1.0.x%20%28old%29/log4cpp-1.0/log4cpp-1.0.tar.gz/download -------------------------------------------------------------------------------- SPDX id: LGPL-2.1-or-later As of version 0.2.1 this library is licensed under the Lesser General Public License instead of the General Public License. No further license changes are planned :-). Log for C++ (short name: log4cpp), a C++ library for flexible logging. Copyright (C) 2000-2002 LifeLine Networks bv Copyright (C) 2000-2002 Bastiaan Bakker Portions Copyright others, see file THANKS and source code. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA https://log4cpp.sourceforge.net/#license ================================================================================ MathParser (version: 0.03b.0) by: Kirill Zaborski http://kirya.narod.ru/files/mathparser_0.03.zip -------------------------------------------------------------------------------- SPDX id: MIT no license text available, look into url. http://kirya.narod.ru/mathparser.html ================================================================================ miniz (version: 1.14.0) by: Rich Geldreich https://github.com/richgel999/miniz/archive/refs/tags/v114.zip -------------------------------------------------------------------------------- SPDX id: MIT Copyright 2013-2014 RAD Game Tools and Valve Software Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://github.com/richgel999/miniz/blob/293d4db1b7d0ffee9756d035b9ac6f7431ef8492/LICENSE ================================================================================ nanoflann (version: 1.3.1) by: Marius Muja, David G. Lowe, Jose L. Blanco https://github.com/jlblancoc/nanoflann/archive/refs/tags/v1.3.1.zip -------------------------------------------------------------------------------- SPDX id: BSD-2-Clause Software License Agreement (BSD License) Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved. Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved. Copyright 2011 Jose L. Blanco (joseluisblancoc@gmail.com). All rights reserved. THE BSD LICENSE Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. https://github.com/jlblancoc/nanoflann/blob/v1.3.1/COPYING ================================================================================ NodeMapData (version: 3.4.2) by: Fritz Dierks -------------------------------------------------------------------------------- GenApi V1.6 License, Rules, and Application Form GenICam_License.doc Page 1 of 11 Generic Interface for Cameras License, Rules, and Application Form V1.6 License, Rules, and Application Form GenICam_License.doc Page 2 of 11 Table of Contents 1 OVERVIEW........................................................................ ..................................................4 2 SUBJECT OF THE GENICAM LICENSE.......................................................................4 3 RULES FOR STANDARD COMPLIANCY .....................................................................5 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION.................................................................. ...............................................6 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION.................................................................. ...............................................7 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC ........................................7 7 GENICAM COLLABORATION RULES.........................................................................8 8 GENICAM STANDARD GROUP MEMBERSHIP APPLICATION............................9 V1.6 License, Rules, and Application Form GenICam_License.doc Page 3 of 11 HISTORY Version Date Changed by Change 0.0 22.06.2005 Dr. Friedrich Dierks, Basler First draft 0.3 10.07.2005 Dr. Friedrich Dierks, Basler Reformatted text; small changes 1.0 12.07.2005 GenICam standard group RC1 1.1 15.07.2005 Christoph Zierl, MVTec  Added logo and application form  Rephrased GenICam compliance  Improved textual consistency  Deleted description of runtime / development features 1.5 draft 29.01.2014 Dr. Friedrich Dierks, Basler Christoph Zierl, MVTec Stéphane Maurice, Matrox  Updated text in Chapter 1  Added updated overview of GenICam modules in Chapter 2  Updated text about compliancy rules in Chapter 3  Replaced “2005” by “” in sample copyright notice in Chapter 4  Updated text in Chapter 5, in particular clarified the usage of the GenApi reference implementation  Renamed Chapter 6 into “GenICam Collaboration Rules” and updated text  Updated layout and added intro text in membership application form 1.5 21.09.2014 GenICam standard group Official release of v1.5 1.6 draft 03.05.2018 Christoph Zierl, MVTec  Added chapter with rules for redistributing (GenTL) SFNC  Added GenCP compliancy rules  Added FWUpdate module  Added clarification regarding how to handle bug fixes and changes regarding unsupported platforms and compilers  Added clarification regarding how to change the GenICam teamwork rules 1.6 29.06.2018 GenICam standard group Official release of v1.6 V1.6 License, Rules, and Application Form GenICam_License.doc Page 4 of 11 1 Overview This document describes the GenICam license and the collaboration rules within the GenICam standard group. Furthermore, the official membership application form is also part of this document. 2 Subject of the GenICam License The goal of GenICam is to provide a generic programming interface for cameras which is independent of the camera’s interface technology like GigE Vision, USB3 Vision, CoaXPress, Camera Link, 1394 DCAM, or else. GenICam requires that cameras have a low level, register based programming interface, and that interface standards define a protocol for accessing these registers. All modern interface standards follow this scheme. The GenICam standard consists of several modules according to the main tasks to be solved:  GenApi: standardizes the format of a XML based device description file which describes how to map high level feature access (e.g. Camera.Gain = 42) by the user to low level register accesses (e.g. Camera.WriteReg( 0xff1234, 0x2A, 2)) .  SFNC (Standard Features Naming Convention): standardizes names, types, and behavior for the most common device features resulting in a plug&play-like interoperability between products from different vendors. Part of the SFNC is also the PFNC (Pixel Format Naming Convention) which standardizes the memory layout of video data.  CLProtocol: standardizes the interface of an adapter DLL to permit interfacing Camera Link cameras with GenICam.  FWUpdate: standardizes the firmware update process for devices using GenApi.  GenTL: standardizes a generic programming interface for transport layers, which defines the enumeration, control and data acquisition of cameras. This interface allows combining drivers and image processing libraries from different vendors.  GenTL SFNC: standardizes names, types, and behavior for common features of the transport layer interface.  GenCP (generic control protocol): standardizes a generic packet based protocol for controlling cameras. It is used to simplify the definition and implementation of new transport layer standards. The GenICam standard group also provides a reference implementation for the GenApi module. The reference implementation is a collection of software modules which can be distributed in two ways: as runtime version or as development version, see Chapters 4 and 5 for more details about using and redistributing the reference implementation. The runtime as well as the development version may contain 3rd party modules which come with their own license. These licenses override the GenICam license. V1.6 License, Rules, and Application Form GenICam_License.doc Page 5 of 11 Note that GenICam is an industry standard which is mostly used by vendors “under the hood” to provide interoperability between their products. As a consequence of this, the reference implementation does not contain any driver and thus cannot be used stand-alone to control a camera. 3 Rules for Standard Compliancy The standard documents are available for free to anybody. Users may download the latest version of the standard documents from the GenICam website at www.genicam.org. Regarding compliancy, the GenICam standard has been divided into three parts:  GenICam (mainly the modules GenApi and SFNC)  GenICam TL (mainly the modules GenTL and GenTL SFNC)  GenICam CP (mainly the module GenCP) While the compliancy rules for GenICam (i.e, the modules GenApi and SFNC) are always valid, the compliancy rules for GenICam TL and GenICam CP are only valid if applicable. The term GenICam compliant is true for:  Cameras (or other devices) providing a GenICam compliant XML based device description file and obeying the standard’s additional rules. In particular, it must follow the GenICam Standard Features Naming Convention (SFNC), whenever applicable or possible.  Software libraries being able to access GenICam compliant devices. The term GenICam TL compliant is true for:  Products that provide a transport layer interface compatible with the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Producers").  Products that can access devices via a GenICam GenTL Producer based on the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Consumers"). The term GenICam CP compliant is true for:  Cameras (or other devices) that support the generic packet-based protocol and provide the bootstrap register map as defined in the GenICam GenCP standard.  Products that can access devices via the generic packet-based protocol and bootstrap register map as defined in the GenICam GenCP standard. In general, the GenICam compliancy is declared by self-certification. The GenICam standard group can provide additional checklists that have to be used during the self-certification procedure. Vendors may use the GenICam logo(s) and use the name GenICamTM for advertising GenICam compliant products. In future, additional compliancy procedures may become mandatory for new devices such as validation test suites and/or obligations to participate at plug-fests. V1.6 License, Rules, and Application Form GenICam_License.doc Page 6 of 11 4 Rules for Using the Runtime Version of the Reference Implementation The runtime version of the reference implementation is available for free to anybody. Everyone may download the latest version from the GenICam website anonymously. The runtime version is distributed under a modified BSD license: Copyright (c) 2005-, All rights reserved. Redistribution and use in source and binary forms, without1 modification, are permitted provided that the following conditions are met:  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  Neither the name of the GenICam standard group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. In contrast to the BSD license the user must not modify the software except the installation procedure, see Chapter 5 for more details. This is to make sure only properly tested and released GenICam versions are used in the machine vision community and the support effort is restricted. 1 The original BSD license reads here “with or without modification”. V1.6 License, Rules, and Application Form GenICam_License.doc Page 7 of 11 5 Rules for Using the Development Version of the Reference Implementation In order to get access to the development version of the GenICam reference implementation a company must become associated member of the GenICam standard group. It can do so at no cost by registering at the EMVA by using the membership application form in the Appendix section. By registering, the designated representative contact can name a reasonable number of company individuals which get the following benefits:  Access to code repository, in particular to download the GenICam source code and use it for debugging.  Access to the GenICam mailing list.  Technical support from the GenICam community through the GenICam mailing list.  The company name is listed on the GenICam website as an associated member. By registering the company accepts the following obligations:  It must not give the source code to any 3rd party.  All bug fixes and all changes regarding unsupported platforms and compilers (for which no official binaries exist yet) shall be submitted to the respective GenICam module maintainers for reviewing and testing. Once the code change is in the code repository, private builds can be made using the repository code, provided that the official way to create a private namespace and private binary names is used. Additionally, the self-generated release must clearly indicate the snapshot version used and state that it is not an official release.  Custom builds of the unmodified source of the GenICam reference implementation may be re-distributed by companies, provided that they follow the official mechanism for utilizing private binary names, namespaces, and indicate the repository snapshot version of the source code.  It must submit improvements to the GenICam standard group which will validate them and add them to the next GenICam release in reasonable time.  The company must declare any intellectual property owned by it that may conflict with GenICam specifications. This is part of the application form. 6 Rules for Redistributing SFNC or GenTL SFNC Redistributing (parts of) SFNC or GenTL SFNC without modification, addition or interpretation, is allowed as long as it is clearly stated that this is a copy of the GenICam (GenTL) SFNC standard document version that can be found at www.genicam.org. V1.6 License, Rules, and Application Form GenICam_License.doc Page 8 of 11 7 GenICam Collaboration Rules The GenICam standard and its reference implementation are maintained and extended by the contributing members of the GenICam standard group. The development runs along the following workflow:  There are regular meetings. Typically, these meetings take place twice a year. Between meetings work packages are given to all companies who want to stay or become contributing members. A typical work package would be extending the reference implementation, writing a part of the standard specification, developing tests for the validation framework, preparing SFNC proposals, and marketing/administrative issues.  Each meeting starts by reviewing the work packages given from the last meeting. The contributing members accept the work package of each company by vote (simple majority). Those members having their work package accepted become contributing members as soon as the work package review is finished.  If during the meeting, decisions are made, the contributing members vote according to the following rules:  Voting is always performed during meetings or per email if approved modifications need to be incorporated.  Only contributing members can vote.  There is one vote per independent member company.  A simple majority is required for normal technical decisions.  A 2/3 majority is required for releases of the standard and/or the reference implementation.  A 2/3 majority is required for changing the teamwork rules. Any changes in the teamwork rules should, however, be communicated to and discussed with the EMVA Board of Directors.At the end of each meeting the contributing members define work packages available for all companies who want to contribute for the next meeting. These work packages are designed to distribute the current standard work on each working company and take into account the various interests and skills of each company. Any associated member can take a work package and thus become contributing member at the next meeting provided the work package is approved. Spare work packages may be defined so that companies wanting to join between meetings can pick it up and become contributing member immediately on the next meeting. The GenICam standard group is led by one chair and several sub-chairs. Typically, the (sub-)chairs are also the responsible persons for the maintenance of specific GenICam modules. The GenICam chairs are elected for a period of three years. The voting takes place during the regular meetings and requires a 2/3 majority. V1.6 License, Rules, and Application Form GenICam_License.doc Page 9 of 11 8 GenICam Standard Group Membership Application To apply for membership, please use this form, including the “Patent and Intellectual Property Rights Disclosure Statement”. Both forms have to be filled in completely, signed, and sent by email to info@emva.org with subject "GenICam Standard Group Membership Application". By signing the form, one accepts the GenICam license. After verification of the data provided in the form, the company becomes associated member of the GenICam standard group and gets access to the GenICam mailing list and repository. We are interested in the work of the GenICam standard group, and hereby apply for membership as an associated member. Our designated representative contact is: Name: Title: Company: Address: City: State/Province: Zip/Postal Code: Country: E-mail: Phone: FAX: Signature of applicant: Printed name: Title: Our interest category is:  Supplier (those directly concerned with the production, manufacture, or distribution of the products or components involved)  User (those who use the product(s) involved) Our technical competence is considered to be in: (check all areas that apply) V1.6 License, Rules, and Application Form GenICam_License.doc Page 10 of 11  Camera / Camera Control  API software  Frame grabber  Machine Vision software  Other: We have or are currently developing a GenICam compliant product:  Yes  No We plan to develop a GenICam compliant product:  Yes  No Device type: Target introduction:  6 Months  12 Months  Other: Statement of qualification/interest: Additional contacts for e-mail distribution and source code access: Name: E-mail: Name: E-mail: Name: E-mail: Name: E-mail: EMVA administration use only: Membership Check: Patent and IP Statement: Approval: Posted: V1.6 License, Rules, and Application Form GenICam_License.doc Page 11 of 11 Patent and Intellectual Property Rights Disclosure Statement Standards developed by the EMVA generally should not include the use of a patented item. However, technical reasons may justify such inclusion. In such cases the EMVA must place statements from parties to the standard into our records to reflect whether they are a patent holder or intend to hold any invention or intellectual property rights the use of which would be required for compliance with the proposed standard, and their intention for exercising such rights. For acceptance as an associated member of the GenICam standard group the below listed company, its officers, or controlling parties declares:  It does not hold and does not currently intend holding any invention or intellectual property rights the use of which would be required for compliance with the proposed GenICam standard.  It does hold or do currently intend holding an invention or intellectual property rights the use of which would be required for compliance with the proposed GenICam standard. A license will be made available to any and all applicants under the following terms and conditions: Certification to be completed by the appropriate Corporate Officer with reasonable oversight of corporate holdings, applications or intentions regarding patents and Intellectual Property, e.g. CEO, President or Senior Technical Officer. I certify the above declaration to be a true and correct statement of fact. Signature: Date: Name: Title: Company: https://www.emva.org/wp-content/uploads/GenICam_License_20180629.pdf ================================================================================ openjpeg (version: 1.2) by: Benoit Macq, Antonin Descampe, Francois-Olivier Devaux, Herve Drolon, Yannick Verschueren, David Janssens https://github.com/uclouvain/openjpeg/tree/version.1.2 -------------------------------------------------------------------------------- SPDX id: BSD-2-Clause Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium Copyright (c) 2002-2007, Professor Benoit Macq Copyright (c) 2001-2003, David Janssens Copyright (c) 2002-2003, Yannick Verschueren Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe Copyright (c) 2005, Herve Drolon, FreeImage Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. https://github.com/uclouvain/openjpeg/blob/version.1.2/license.txt ================================================================================ pcl (version: 1.12.0) by: Open Perception, Inc. https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.12.0.zip -------------------------------------------------------------------------------- SPDX id: BSD-3-Clause Software License Agreement (BSD License) Point Cloud Library (PCL) - www.pointclouds.org Copyright (c) 2009-2012, Willow Garage, Inc. Copyright (c) 2012-, Open Perception, Inc. Copyright (c) XXX, respective authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder(s) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. https://github.com/PointCloudLibrary/pcl/blob/pcl-1.12.0/LICENSE.txt -------------------------------------------------------------------------------- SPDX id: BSD-2-Clause-Views * Software License Agreement (Simplified BSD License) * * Point Cloud Library (PCL) - www.pointclouds.org * Copyright (c) 2013-, Open Perception, Inc. * Copyright (c) 2012, Piotr Dollar & Ron Appel.[pdollar-at-caltech.edu] * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, this *list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, *this list of conditions and the following disclaimer in the documentation *and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * The views and conclusions contained in the software and documentation are those * of the authors and should not be interpreted as representing official policies, * either expressed or implied, of the FreeBSD Project. * * Taken from Piotr Dollar's MATLAB Image&Video ToolboxVersion 3.00. https://github.com/PointCloudLibrary/pcl/blob/pcl-1.12.0/common/include/pcl/sse.h -------------------------------------------------------------------------------- SPDX id: BSD-2-Clause * Software License Agreement (BSD License) * * Point Cloud Library (PCL) - www.pointclouds.org * Copyright (c) 2000-2008 Marc Alexander Lehmann * Copyright (c) 2010-2011, Willow Garage, Inc. * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. https://github.com/PointCloudLibrary/pcl/blob/pcl-1.12.0/io/include/pcl/io/lzf.h ================================================================================ PCRE2 (version: 10.42.0) by: Philip Hazel https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.zip -------------------------------------------------------------------------------- SPDX id: BSD-3-Clause PCRE2 LICENCE ------------- PCRE2 is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Releases 10.00 and above of PCRE2 are distributed under the terms of the "BSD" licence, as specified below, with one exemption for certain binary redistributions. The documentation for PCRE2, supplied in the "doc" directory, is distributed under the same terms as the software itself. The data in the testdata directory is not copyrighted and is in the public domain. The basic library functions are written in C and are freestanding. Also included in the distribution is a just-in-time compiler that can be used to optimize pattern matching. This is an optional feature that can be omitted when the library is built. THE BASIC LIBRARY FUNCTIONS --------------------------- Written by: Philip Hazel Email local part: Philip.Hazel Email domain: gmail.com Retired from University of Cambridge Computing Service, Cambridge, England. Copyright (c) 1997-2021 University of Cambridge All rights reserved. PCRE2 JUST-IN-TIME COMPILATION SUPPORT -------------------------------------- Written by: Zoltan Herczeg Email local part: hzmester Email domain: freemail.hu Copyright(c) 2010-2021 Zoltan Herczeg All rights reserved. STACK-LESS JUST-IN-TIME COMPILER -------------------------------- Written by: Zoltan Herczeg Email local part: hzmester Email domain: freemail.hu Copyright(c) 2009-2021 Zoltan Herczeg All rights reserved. THE "BSD" LICENCE ----------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notices, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notices, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES ------------------------------------------ The second condition in the BSD licence (covering binary redistributions) does not apply all the way down a chain of software. If binary package A includes PCRE2, it must respect the condition, but if package B is software that includes package A, the condition is not imposed on package B unless it uses PCRE2 independently. End https://github.com/PCRE2Project/pcre2/blob/pcre2-10.42/LICENCE ================================================================================ rapidxml (version: 1.13) by: Marcin Kalicinski https://sourceforge.net/project/platformdownload.php?group_id=189621&sel_platform=1227 -------------------------------------------------------------------------------- SPDX expression: BSL-1.0 OR MIT -------------------------------------------------------------------------------- SPDX id: BSL-1.0 Copyright (c) 2006, 2007 Marcin Kalicinski Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://rapidxml.sourceforge.net/license.txt -------------------------------------------------------------------------------- SPDX id: MIT Copyright (c) 2006, 2007 Marcin Kalicinski Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. https://rapidxml.sourceforge.net/license.txt ================================================================================ sqlite (version: 3.7.16.1) by: Hipp, Wyrick & Company, Inc https://github.com/sqlite/sqlite/archive/refs/tags/version-3.7.16.1.zip -------------------------------------------------------------------------------- SPDX id: blessing The author disclaims copyright to this source code. In place of a legal notice, here is a blessing: May you do good and not evil. May you find forgiveness for yourself and forgive others. May you share freely, never taking more than you give. https://spdx.org/licenses/blessing.html ================================================================================ XmlParser (version: 3.4.2) by: Fritz Dierks -------------------------------------------------------------------------------- GenICam GENICAM: Generic Interface for Cameras ====================================== License and Rules ================= Table of Contents 1 OVERVIEW 2 SUBJECT OF THE GENICAM LICENSE 3 RULES FOR STANDARD COMPLIANCY 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC 7 GENICAM COLLABORATION RULES 1 OVERVIEW ========== This document describes the GenICam license and the collaboration rules within the GenICam standard group. Furthermore, the official membership application form is also part of this document. 2 SUBJECT OF THE GENICAM LICENSE ================================ The goal of GenICam is to provide a generic programming interface for cameras which is independent of the camera’s interface technology like GigE Vision, USB3 Vision, CoaXPress, Camera Link, 1394 DCAM, or else. GenICam requires that cameras have a low level, register based programming interface, and that interface standards define a protocol for accessing these registers. All modern interface standards follow this scheme.The GenICam standard consists of several modules according to the main tasks to be solved: - GenApi: standardizes the format of a XML based device description file which describes how to map high level feature access (e.g. Camera.Gain = 42) by the user to low level register accesses (e.g. Camera.WriteReg( 0xff1234, 0x2A, 2)). - SFNC (Standard Features Naming Convention): standardizes names, types, and behavior for the most common device features resulting in a plug&play-like interoperability between products from different vendors. Part of the SFNC is also the PFNC (Pixel Format Naming Convention) which standardizes the memory layout of video data. - CLProtocol: standardizes the interface of an adapter DLL to permit interfacing Camera Link cameras with GenICam. - FWUpdate: standardizes the firmware update process for devices using GenApi. - GenTL: standardizes a generic programming interface for transport layers, which defines the enumeration, control and data acquisition of cameras. This interface allows combining drivers and image processing libraries from different vendors. - GenTL SFNC: standardizes names, types, and behavior for common features of the transport layer interface. - GenCP (generic control protocol): standardizes a generic packet based protocol for controlling cameras. It is used to simplify the definition and implementation of new transport layer standards. The GenICam standard group also provides a reference implementation for the GenApi module. The reference implementation is a collection of software modules which can be distributed in two ways: as runtime version or as development version, see Chapters 4 and 5 for more details about using and redistributing the reference implementation. The runtime as well as the development version may contain 3rd party modules which come with their own license. These licenses override the GenICam license. Note that GenICam is an industry standard which is mostly used by vendors "under the hood" to provide interoperability between their products. As a consequence of this, the reference implementation does not contain any driver and thus cannot be used stand-alone to control a camera. 3 RULES FOR STANDARD COMPLIANCY =============================== The standard documents are available for free to anybody. Users may download the latest version of the standard documents from the GenICam website at www.genicam.org. Regarding compliancy, the GenICam standard has been divided into three parts: - GenICam (mainly the modules GenApi and SFNC) - GenICam TL (mainly the modules GenTL and GenTL SFNC) - GenICam CP (mainly the module GenCP) While the compliancy rules for GenICam (i.e, the modules GenApi and SFNC) are always valid, the compliancy rules for GenICam TL and GenICam CP are only valid if applicable. The term GenICam compliant is true for: - Cameras (or other devices) providing a GenICam compliant XML based device description file and obeying the standard’s additional rules. In particular, it must follow the GenICam Standard Features Naming Convention (SFNC), whenever applicable or possible. - Software libraries being able to access GenICam compliant devices. The term GenICam TL compliant is true for: - Products that provide a transport layer interface compatible with the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Producers"). - Products that can access devices via a GenICam GenTL Producer based on the definitions of the GenTL and the GenTL SFNC modules ("GenICam GenTL Consumers"). The term GenICam CP compliant is true for: - Cameras (or other devices) that support the generic packet-based protocol and provide the bootstrap register map as defined in the GenICam GenCP standard. - Products that can access devices via the generic packet-based protocol and bootstrap register map as defined in the GenICam GenCP standard. In general, the GenICam compliancy is declared by self-certification. The GenICam standard group can provide additional checklists that have to be used during the self-certification procedure. Vendors may use the GenICam logo(s) and use the name GenICamTM for advertising GenICam compliant products. In future, additional compliancy procedures may become mandatory for new devices such as validation test suites and/or obligations to participate at plug-fests. 4 RULES FOR USING THE RUNTIME VERSION OF THE REFERENCE IMPLEMENTATION ===================================================================== The runtime version of the reference implementation is available for free to anybody. Everyone may download the latest version from the GenICam website anonymously. The runtime version is distributed under a modified BSD license: Copyright (c) 2005-, All rights reserved. Redistribution and use in source and binary forms, without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the GenICam standard group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. In contrast to the BSD license the user must not modify the software except the installation procedure, see Chapter 5 for more details. This is to make sure only properly tested and released GenICam versions are used in the machine vision community and the support effort is restricted. The original BSD license reads here "with or without modification". 5 RULES FOR USING THE DEVELOPMENT VERSION OF THE REFERENCE IMPLEMENTATION ========================================================================= In order to get access to the development version of the GenICam reference implementation a company must become associated member of the GenICam standard group. It can do so at no cost by registering at the EMVA by using the membership application form in the Appendix section. By registering, the designated representative contact can name a reasonable number of company individuals which get the following benefits: - Access to code repository, in particular to download the GenICam source code and use it for debugging. - Access to the GenICam mailing list. - Technical support from the GenICam community through the GenICam mailing list. - The company name is listed on the GenICam website as an associated member. By registering the company accepts the following obligations: - It must not give the source code to any 3rd party. - All bug fixes and all changes regarding unsupported platforms and compilers (for which no official binaries exist yet) shall be submitted to the respective GenICam module maintainers for reviewing and testing. Once the code change is in the code repository, private builds can be made using the repository code, provided that the official way to create a private namespace and private binary names is used. Additionally, the self-generated release must clearly indicate the snapshot version used and state that it is not an official release. - Custom builds of the unmodified source of the GenICam reference implementation may be re-distributed by companies, provided that they follow the official mechanism for utilizing private binary names, namespaces, and indicate the repository snapshot version of the source code. - It must submit improvements to the GenICam standard group which will validate them and add them to the next GenICam release in reasonable time. - The company must declare any intellectual property owned by it that may conflict with GenICam specifications. This is part of the application form. 6 RULES FOR REDISTRIBUTING SFNC OR GENTL SFNC ============================================= Redistributing (parts of) SFNC or GenTL SFNC without modification, addition or interpretation, is allowed as long as it is clearly stated that this is a copy of the GenICam (GenTL) SFNC standard document version that can be found at www.genicam.org. 7 GENICAM COLLABORATION RULES ============================= The GenICam standard and its reference implementation are maintained and extended by the contributing members of the GenICam standard group. The development runs along the following workflow: - There are regular meetings. Typically, these meetings take place twice a year. Between meetings work packages are given to all companies who want to stay or become contributing members. A typical work package would be extending the reference implementation, writing a part of the standard specification, developing tests for the validation framework, preparing SFNC proposals, and marketing/administrative issues. - Each meeting starts by reviewing the work packages given from the last meeting. The contributing members accept the work package of each company by vote (simple majority). Those members having their work package accepted become contributing members as soon as the work package review is finished. - If during the meeting, decisions are made, the contributing members vote according to the following rules: - Voting is always performed during meetings or per email if approved modifications need to be incorporated. - Only contributing members can vote. - There is one vote per independent member company. - A simple majority is required for normal technical decisions. - A 2/3 majority is required for releases of the standard and/or the reference implementation. - A 2/3 majority is required for changing the teamwork rules. Any changes in the teamwork rules should, however, be communicated to and discussed with the EMVA Board of Directors. At the end of each meeting the contributing members define work packages available for all companies who want to contribute for the next meeting. These work packages are designed to distribute the current standard work on each working company and take into account the various interests and skills of each company. Any associated member can take a work package and thus become contributing member at the next meeting provided the work package is approved. Spare work packages may be defined so that companies wanting to join between meetings can pick it up and become contributing member immediately on the next meeting. The GenICam standard group is led by one chair and several sub-chairs. Typically, the (sub-)chairs are also the responsible persons for the maintenance of specific GenICam modules. The GenICam chairs are elected for a period of three years. The voting takes place during the regular meetings and requires a 2/3 majority. https://www.emva.org/wp-content/uploads/GenICam_License_20180629.pdf ================================================================================ xs3p (version: 1.1.5) by: https://sourceforge.net/projects/xs3p/files/xs3p-1.1.5.zip/download -------------------------------------------------------------------------------- xs3p DSTC Public License (DPL) Version 1.1 1. Definitions. 1.0.1. "Commercial Use" means distribution or otherwise making the Covered Code available to a third party. 1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications. 1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor. 1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof. 1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data. 1.5. "Executable" means Covered Code in any form other than Source Code. 1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A. 1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License. 1.8. "License" means this document. 1.8.1. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. 1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is: A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications. B. Any new file that contains any part of the Original Code or previous Modifications. 1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License. 1.10.1. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. 1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge. 1.12. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. Source Code License. 2.1. The Initial Developer Grant. The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims: (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and (b) under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof). (c) the licenses granted in this Section 2.1(a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License. (d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices. 2.2. Contributor Grant. Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first makes Commercial Use of the Covered Code. (d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor. 3. Distribution Obligations 3.1. Application of License. The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5. 3.2. Availability of Source Code. Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party. 3.3. Description of Modifications. You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code. 3.4. Intellectual Property Matters (a) Third Party Claims. If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained. (b) Contributor APIs. If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file. (c) Representations. Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License. 3.5. Required Notices. You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. 3.6. Distribution of Executable Versions. You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. 3.7. Larger Works. You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code. 4. Inability to Comply Due to Statute or Regulation. If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Application of this License. This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code. 6. Versions of the License. 6.1. New Versions The Distributed Systems Technology Centre ("DSTC") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number. 6.2. Effect of New Versions Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by DSTC. No one other than DSTC has the right to modify the terms applicable to Covered Code created under this License. 6.3. Derivative Works If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases "DSTC", "DPL" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the DSTC Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.) 7. Disclaimer of Warranty. COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 8. Termination. 8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. 8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as 'Participant') alleging that: (a) such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above. (b) any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant. 8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. 8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination. 9. Limitation of Liability. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 10. U.S. Government End Users. The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein. 11. Miscellaneous. This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Queensland, Australia law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in Australia, any litigation relating to this License shall be subject to the jurisdiction of Australian Courts, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. 12. Responsibility for Claims. As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. 13. Multiple-licensed Code. Initial Developer may designate portions of the Covered Code as "Multiple-Licensed". "Multiple-Licensed" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the DPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. 14. High Risk Activities. The Software is not fault-tolerant and is not designed, manufactured or intended for use or resale as on-line control equipment in hazardous environments requiring fail-safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, direct life support machines, or weapons systems, in which the failure of the Software could lead directly to death, personal injury, or severe physical or environmental damage ("High Risk Activities"). EXHIBIT A - DSTC Public License. The contents of this file are subject to the DSTC Public License Version 1.1 (the 'License'); you may not use this file except in compliance with the License. Software distributed under the License is distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is ______________________________________. The Initial Developer of the Original Code is ________________________. Portions created by ______________________ are Copyright © _____________________________. All Rights Reserved. Contributor(s): ______________________________________. Alternatively, the contents of this file may be used under the terms of the _____ license (the "[___] License"), in which case the provisions of [______] License are applicable instead of those above. If you wish to allow use of your version of this file only under the terms of the [____] License and not to allow others to use your version of this file under the DPL, indicate your decision by deleting the provisions above and replace them with the notice and other provisions required by the [___] License. If you do not delete the provisions above, a recipient may use your version of this file under either the DPL or the [___] License.' [NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.] https://sourceforge.net/p/xs3p/code/HEAD/tree/LICENSE.html ================================================================================ xsde (version: 3.2.0) by: Boris Kolpackov -------------------------------------------------------------------------------- Proprietary no license text available, look into url. ================================================================================ XSLTProc (version: 1.1.38) by: Daniel Veillard, Thomas Broyer https://gitlab.gnome.org/GNOME/libxslt/-/archive/v1.1.38/libxslt-v1.1.38.zip -------------------------------------------------------------------------------- SPDX id: MIT Licence for libxslt except libexslt ---------------------------------------------------------------------- Copyright (C) 2001-2002 Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is fur- nished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other deal- ings in this Software without prior written authorization from him. ---------------------------------------------------------------------- Licence for libexslt ---------------------------------------------------------------------- Copyright (C) 2001-2002 Thomas Broyer, Charlie Bozeman and Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is fur- nished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of the authors shall not be used in advertising or otherwise to promote the sale, use or other deal- ings in this Software without prior written authorization from him. ---------------------------------------------------------------------- https://gitlab.gnome.org/GNOME/libxslt/-/blob/v1.1.38/Copyright?ref_type=tags ================================================================================ xxhash (version: 0.8.2) by: Yann Collet https://github.com/Cyan4973/xxHash/releases/download/v0.8.2/xxhsum_win64_v0_8_2.zip -------------------------------------------------------------------------------- SPDX id: BSD-3-Clause xxHash Library Copyright (c) 2012-2021 Yann Collet All rights reserved. BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. https://github.com/Cyan4973/xxHash/blob/v0.8.2/LICENSE ================================================================================ zlib (version: 1.2.8) by: Jean-Loup Gailly, Mark Adler https://github.com/madler/zlib/archive/refs/tags/v1.2.8.zip -------------------------------------------------------------------------------- SPDX id: Zlib /* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.8, April 28th, 2013 Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). */ https://github.com/madler/zlib/blob/v1.2.8/zlib.h